package com.vviton.zyhj.common.base;

import java.util.List;
import java.util.Map;

import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.FilterList;
import org.apache.hadoop.hbase.filter.PageFilter;

import com.wdcloud.framework.dao.hbase.HbaseInterfaceImp;

/**
 * @Desc HBaseProxyImpl
 * @Author zhangzj
 * @Date 2015年10月9日 下午12:33:11
 */
public class HBaseProxyImpl extends HbaseInterfaceImp implements HBaseProxy {

    /**
     * @Desc 条件取得Hbase数据
     * @Author zhangzj
     * @Date 2015年10月9日 下午12:31:41
     * @param tableName
     *            表名
     * @param list
     *            拦截条件
     * @param reversed
     *            排序方式（true：行键降序；false：行键升序）
     * @param limit
     *            限定检索件数
     * @return 检索出来的数据
     */
    public List<Map<String, Object>> findMapList(String tableName, List<Filter> list, boolean reversed, long limit) {
        Scan scan = new Scan();
        if (limit > 0L) {
            list.add(new PageFilter(limit));
        }
        if (list.size() > 0) {
            FilterList filterList1 = new FilterList(list);
            scan.setFilter(filterList1);
        }
        scan.setReversed(reversed);
        return find(tableName, scan, null);
    }

}
